/*
 【基础】高精度减法运算
  题目描述
    高精度减法，求 a - b（a 不一定大于 b） a,b 都是非负整数且都不超过 240 位
  输入
    两个非负整数 每行一个
  输出
    一个数
  样例输入
    33333333333333333333333333333333333333333
    22222222222222222222222222222222222222222
  样例输出
    11111111111111111111111111111111111111111
  提示
    数据并不保证 a > b，如果差是负数要输出'-'号； 另外差的高位上的 0 要去掉。
*/

#include <bits/stdc++.h>

using namespace std;

int main() {
    string a, b;

    cin >> a >> b;

    // 1. 对位
    //    (保证 a 和 b 的字符串长度相同)
    while (a.size() > b.size()) {
        b = '0' + b; // 在字符串的左边补'0'
    }
    while (a.size() < b.size()) {
        a = '0' + a; // 在字符串的左边补'0'
    }

    // 2. 检查是 "小数" - "大数", 则将其转变为 "大数" - "小数" 来计算! 并且最终的结果一定为负数!
    if (a < b) {
        swap(a, b);
        cout << "-"; // 如果是"小数" - "大数", 那么结果一定为负数, 结果字符串的第一个字符为 "-"
    }

    // 3. 倒序相减 (考虑借位问题)
    int jw = 0; // 借位
    string c;   // 目标字符串, 存放大数 a 和 b 相减后的结果
    for (int i = a.size() - 1; i >= 0; i--) {  // 注意: 这里是倒序相减!
        int a1 = a[i] - '0';
        int b1 = b[i] - '0';

        int xi = a1 - b1 - jw;
        if (xi < 0) {  // 需要借位!
            xi = xi + 10;
            jw = 1;
        } else {       // 不需要借位!
            jw = 0;
        }
        char xi1 = xi + '0';
        c = xi1 + c;
    }

    // 4. 去除多余的前导 '0'
    while (c.size() > 1 && c[0] == '0') {
        c.erase(0, 1);
    }

    cout << c;

    return 0;
}